package socket;

import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;

import java.util.SimpleTimeZone;
import java.util.UUID;

/**
 * @Author: 蔡翔
 * @Date: 2019/10/28 21:15
 * @Version 1.0
 */
public class MyServerHanlder extends SimpleChannelInboundHandler<String> {

    //当客户端给 服务端发送数据的时候，会调用MyServerHanlder 里面的channelRead0 方法。
    @Override
    protected void channelRead0(ChannelHandlerContext ctx, String msg) throws Exception {
        System.out.println(ctx.channel().remoteAddress()+","+msg);
        //ctx.channel().write() 表示把数据写入缓冲区，ctx.channel().flush()表示把数据刷出缓冲区，ctx.channel().writeAndFlush()写并且输出缓冲区。
        //多个write 对应一个flux也是可以的。
        //ctx.channel().writeAndFlush()其实就是向客户端发送数据。
        ctx.channel().writeAndFlush("from server:"+ UUID.randomUUID());
    }

    @Override
    public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
        super.exceptionCaught(ctx, cause);
        ctx.close();
    }
}
